MainActivity
override fun goToMain2() {
val intent = Intent(this, Main2Activity::class.java) // 設定意圖
startActivity(intent) // 執行
finish() // 結束目前的畫面 (有這行,手機返回鍵就不會退回該畫面 )
}
Presenter
class Presenter(val view: Contract.View) :Contract.Presenter{
override fun compare(account: String, password: String) {
if (account == "1234" && password == "5678") {
view.showSuccess() // 顯示成功訊息
view.goToMain2() // 跳轉畫面
} else {
view.showFailure()
}
}
}
MainActivity
override fun goToMain2() {
Handler().postDelayed({
val intent = Intent(this, Main2Activity::class.java)
startActivity(intent)
finish()
},2000) // 設定延遲兩秒 (這裡輸入的是毫秒,轉為秒要除1000)
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Main2Activity">
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
Main2Activity
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
// 建立一個 Adapter
val myAdapter = object : FragmentPagerAdapter(supportFragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
// 這個方法需要返回一個你自訂的 Fragment
override fun getItem(position: Int): Fragment {
return PagerFragment(position)
}
// 這個方法需要返回 ViewPager 底下子畫面的數量
override fun getCount(): Int {
return 5
}
// 設定 ViewPager 的 Adapter 屬性
viewpager.adapter = myAdapter // 設定 adapter 屬性
}
class PagerFragment(val position: Int) : Fragment() {
// 用 list 暫存背景色
val colors = listOf(Color.RED, Color.YELLOW, Color.GREEN, Color.BLUE, Color.GRAY)
// 要返回你的畫面
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment, container,false)
return view
}
// 設定你的元件屬性
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val num = position + 1
tv_number.apply {
// 設定內容
text = "這是 Fragment " + num
// 設定背景色
setBackgroundColor(colors[position])
}
super.onViewCreated(view, savedInstanceState)
}
}